/**
 * Captain
 * © 2017 Captain copyright，All rights reserved.
 * http://www.sccaptain.com.cn
 *
 * JAVA : 8
 * 文  件  名: DataDictionaryDao.java
 * 创  建  人: sunfeng (sun.feng@sccaptain.com.cn)
 * 创建时间: 2017年7月4日 下午3:21:37
 * 版         本: 1.0.0
 * 备         注:
 * 修订历史:
 */
package com.material.c2c.sysconfig.dao;

import java.util.List;

import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import com.material.c2c.core.dao.EntityDao;
import com.material.c2c.sysconfig.entity.XTPZ_SJZD;
import com.material.c2c.sysconfig.model.DataDictionaryDTO;

/**
 * 数据字典接口。
 * 
 * @since 1.0
 * @version 1.0
 * @author sunfeng (sun.feng@sccaptain.com.cn)
 */
public interface DataDictionaryDao extends EntityDao<XTPZ_SJZD, String> {

  /**
   * 获取所有的数据字典项列表
   * 
   * @return 所有的数据字典项列表
   *
   * @since 1.0
   * @version 1.0
   * @author sunfeng (sun.feng@sccaptain.com.cn)
   */
  @Query("select xs from XTPZ_SJZD xs where xs.sjid is null and xs.sfjy = 0 order by xs.xh asc")
  List<XTPZ_SJZD> findAllDataDictionaryItem();

  /**
   * 获取指定字典项下的所有字典值列表
   * 
   * @param itemId
   *          字典项id
   * @return 该字典项下的所有字典值列表
   *
   * @since 1.0
   * @version 1.0
   * @author sunfeng (sun.feng@sccaptain.com.cn)
   */
  @Query("select new com.material.c2c.sysconfig.model.DataDictionaryDTO(xs.id,xs.mc,xs.bm,xs.zdymc,xs.bz,xs.sfzdy) from XTPZ_SJZD xs where xs.sjid = :itemId and xs.sfjy = 0 order by xs.xh asc")
  List<DataDictionaryDTO> findDictionaryItemValueByItemId(@Param("itemId") String itemId);

  /**
   * 获取不为当前主键id的，指定字典项和编码的数据字典信息
   * 
   * @param itemId
   *          字典项id
   * @param bm
   *          编码
   * @param valueId
   *          字典项值id
   * @return
   *
   * @since 1.0
   * @version 1.0
   * @author sunfeng (sun.feng@sccaptain.com.cn)
   */
  List<XTPZ_SJZD> findBySjidAndBmAndIdNot(String itemId, String bm, String valueId);

}
